/**
 * router.js 路由模块
 * 职责：
 *   处理路由
 *   根据不同的请求方法+请求路径设置具体的请求处理函数
 * 模块职责要单一，不要乱写
 * 我们划分模块的目的就是为了增强项目代码的可维护性
 * 提升开发效率
 */

var mongoose = require('mongoose'); 
var fs = require('fs')
var Student = require('./table')

// Express 提供了一种更好的方式
// 专门用来包装路由的
var express = require('express')

// 1. 创建一个路由容器
var router = express.Router()

// 2. 把路由都挂载到 router 路由容器中

/*
 * 查
 */
router.get('/students', function (req, res) {
  Student.find(function (err, students) {
    if (err) {
      return res.status(500).send('Server error.')
    }

     //Student: students
	 res.send(students)
    })
  })

/*
 * 根据id查
 */
router.post('/student', function (req, res) {
     const id = req.body.id
     const whereid1 = {'_id':id}
	 Student.findById(id , function(err, student){
		if (err) {
			res.send({'code':1 , 'errorMsg':'查找失败'})
		}else {
			res.send(student)
		
			//res.send('200')
	
		}	 
		 
	 } )
	
  })


/*
  增
*/
router.post('/add', function (req, res) {
  // 1. 获取表单数据
  // 2. 处理
  //    将数据保存到 db.json 文件中用以持久化
  // 3. 发送响应
  new Student(req.body).save(function (err) {
    if (err) {
      return res.status(500).send('Server error.')
    }
    
  })
})


/*
  删
*/
router.post('/delete',function(req,res){
	const id = req.body.id
	const whereid = {'_id':id}
	Student.remove(whereid, (err, docs)=>{
		if (err) {
			res.send({'code':1 , 'errorMsg':'删除失败'})
		}else {
			res.send(docs)
		}	
	})	
})

/*
修改
*/
router.post('/update',function(req, res){
	const id = req.body.id

	const updateStr = {
		name: req.body.name,
		prov: req.body.prov,
		address: req.body.address,
		expressid: req.body.expressid,
		birthday: req.body.birthday,
		city: req.body.city
	}
	
	const ids = {
		_id: id
	}
	
	Student.findByIdAndUpdate(ids, updateStr, function(err, docs){
		if(err){
			res.send({'code':1, 'errorMsg': '更新失败'})
		}else {
			res.send(docs)
		}
		
	})
    
})

// 3. 把 router 导出
module.exports = router
